Вход

Просмотр полной версии : Помогите пожалуйста сократить код Jqury


sasha3611
26.12.2017, 14:16
Как можно сократить или модернизировать код подскажите пожалуйста.


$(document).ready(function () {
var name = $('.name');
var login = $('.login');
var mail = $('.email');
var pass = $('.pass');
var pass2 = $('.pass2');
var pattern = /^[a-z0-9_-]+@[a-z0-9-]+\.[a-z]{2,6}$/i;
name.blur(function () {
if(name.val() == '') {
name.css({'border-bottom-color': 'red'});
}
});
login.blur(function () {
if(login.val() == '') {
login.css({'border-bottom-color': 'red'});
}
});
mail.blur(function () {
if(mail.val() == '') {
mail.css({'border-bottom-color': 'red'});
}
});
name.keyup(function () {
if(name.val().search(/^[a-zA-Zа-яА-ЯёЁ'][a-zA-Z-а-яА-ЯёЁ' ]+[a-zA-Zа-яА-ЯёЁ']?$/) == 0) {
if(name.val().length >= 20) {
name.css({'border-bottom-color': 'red'});
}else{
$('.name_user').html(name.val());
name.css({'border-bottom-color': 'green'});
}
}else{name.css({'border-bottom-color': 'red'});}
});
login.keyup(function () {

if(login.val().search(/^[A-z0-9]{3,16}$/) == 0) {

$.post("php/login_reg.php", {
user_login: login.val()
}, function (data) {
if(data == 'no') {
alert("Логин занят !");
login.css({'border-bottom-color': 'red'});
}else{
$('.name_login').html(login.val());
login.css({'border-bottom-color': 'green'});
}
});
}else{login.css({'border-bottom-color': 'red'});}
});
mail.keyup(function () {
mail.css({'border-bottom-color': '#D1D1D1'});
if(mail.val().search(pattern) == 0) {
$.post("php/mail_reg.php", {
user_mail: mail.val()
}, function (data) {
if(data == 'no') {
alert("Mail уже существует !");
mail.css({'border-bottom-color': 'red'});
}else{
mail.css({'border-bottom-color': 'green'});
}
});
}else{
mail.css({'border-bottom-color': 'red'});
}
});
pass.blur(function () {
if(pass.val() == '') {
pass.css({'border-bottom-color': 'red'});
}else{pass.css({'border-bottom-color': 'green'});}
});
pass2.keyup(function () {
if(pass.val() == pass2.val()) {
pass2.css({'border-bottom-color': 'green'});}
});
pass2.blur(function () {
if(pass2.val() == '') {pass2.css({'border-bottom-color': 'red'});
}else if(pass.val() != pass2.val()) {pass2.css({'border-bottom-color': 'red'});
}else{pass2.css({'border-bottom-color': 'green'});}
});
$('.btn-reg').on('click', function () {
if($('#checkbox').prop('checked')) {alert("Ajax соединение...");
}else{alert("Флажок не установлен");}
});
});

Nexus
26.12.2017, 14:18
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:


... ваш код...



О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Nexus
26.12.2017, 14:31
Валидацию обязательно нужно на сервере производить.

$(function() {
// регулярки не проверял, но похоже они какие-то кривоватые...
$('.name,.login,.email,.pass,.pass').on('blur keyup', function() {
var $this = $(this),
valid = !!this.value.trim().length;

if (!valid)
return $this.css('border-bottom-color', 'red');

switch (this.className) {
case 'name':
valid = ($this.val().search(/^[a-zA-Zа-яА-ЯёЁ'][a-zA-Z-а-яА-ЯёЁ' ]+[a-zA-Zа-яА-ЯёЁ']?$/) == 0 && $this.val().length < 20)

break;
case 'login':
if (!(valid = $this.val().search(/^[A-z0-9]{3,16}$/) == 0))
break;

$.post("php/login_reg.php", {
user_login: $this.val()
}, function(data) {
valid = data != 'no';

if (!valid)
alert("Логин занят !");
else
$('.name_login').html($this.val());

login.css('border-bottom-color', valid ? 'green' : 'red');
});

break;

/* и т.п. */
};

$this.css('border-bottom-color', valid ? 'green' : 'red');
});

$('.btn-reg').on('click', function() {
if ($('#checkbox').prop('checked')) {
alert("Ajax соединение...");
} else {
alert("Флажок не установлен");
}
});
});